Form Validation এবং Error Handling

GWT এর Data Binding এবং Validation - গুগল ওয়েব টুলকিট (Google Web Toolkit) - Web Development

245

ওয়েব অ্যাপ্লিকেশনে Form Validation এবং Error Handling একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। এটি ব্যবহারকারীদের সঠিক ডেটা প্রদান নিশ্চিত করে এবং ত্রুটি সম্পর্কে ব্যবহারকারীদের সঠিক নির্দেশনা দেয়। GWT-তে সহজেই ফর্ম ভ্যালিডেশন এবং এরর হ্যান্ডলিং করা যায়, যা ডেভেলপারদের সময় এবং প্রচেষ্টা সাশ্রয় করে।


ফর্ম ভ্যালিডেশন (Form Validation)

Client-Side Validation

Client-side validation ব্যবহার করে ব্যবহারকারীর ডেটা সাবমিট করার আগেই তা যাচাই করা যায়। এটি দ্রুত এবং ব্যান্ডউইথ সাশ্রয়ী।

উদাহরণ: TextBox ভ্যালিডেশন
TextBox emailField = new TextBox();
Button submitButton = new Button("Submit");

submitButton.addClickHandler(event -> {
    String email = emailField.getText();
    if (email.isEmpty()) {
        Window.alert("Email field cannot be empty!");
    } else if (!email.matches("^[\\w.%+-]+@[\\w.-]+\\.[a-zA-Z]{2,6}$")) {
        Window.alert("Invalid email address!");
    } else {
        Window.alert("Email is valid!");
    }
});

RootPanel.get().add(emailField);
RootPanel.get().add(submitButton);

Server-Side Validation

ক্লায়েন্ট-সাইড যাচাইয়ের পাশাপাশি, Server-side validation ব্যবহার করে সুরক্ষা নিশ্চিত করা হয়। এটি বিশেষত গুরুত্বপূর্ণ যখন ব্যবহারকারী ফর্ম ডেটা পরিবর্তন করতে পারে (উদাহরণ: DevTools ব্যবহার করে)।

উদাহরণ: RPC-এর মাধ্যমে সার্ভার-সাইড ভ্যালিডেশন
  1. ইন্টারফেস তৈরি করুন:

    @RemoteServiceRelativePath("validation")
    public interface ValidationService extends RemoteService {
        boolean isValidEmail(String email);
    }
    
  2. ইমপ্লিমেন্টেশন যুক্ত করুন:

    public class ValidationServiceImpl extends RemoteServiceServlet implements ValidationService {
        @Override
        public boolean isValidEmail(String email) {
            return email != null && email.matches("^[\\w.%+-]+@[\\w.-]+\\.[a-zA-Z]{2,6}$");
        }
    }
    
  3. ক্লায়েন্ট কোড:

    ValidationServiceAsync validationService = GWT.create(ValidationService.class);
    
    validationService.isValidEmail(email, new AsyncCallback<Boolean>() {
        @Override
        public void onFailure(Throwable caught) {
            Window.alert("Validation failed: " + caught.getMessage());
        }
    
        @Override
        public void onSuccess(Boolean result) {
            if (result) {
                Window.alert("Email is valid!");
            } else {
                Window.alert("Invalid email address!");
            }
        }
    });
    

এরর হ্যান্ডলিং (Error Handling)

ক্লায়েন্ট-সাইড এরর হ্যান্ডলিং

ব্যবহারকারীদের দ্রুত প্রতিক্রিয়া জানাতে ক্লায়েন্ট-সাইড ত্রুটি পরিচালনা অত্যন্ত কার্যকর।

উদাহরণ: TextBox-এ Error Message প্রদর্শন
TextBox emailField = new TextBox();
Label errorLabel = new Label();

Button submitButton = new Button("Submit");
submitButton.addClickHandler(event -> {
    String email = emailField.getText();
    if (email.isEmpty()) {
        errorLabel.setText("Email field cannot be empty!");
    } else if (!email.matches("^[\\w.%+-]+@[\\w.-]+\\.[a-zA-Z]{2,6}$")) {
        errorLabel.setText("Invalid email address!");
    } else {
        errorLabel.setText("");
        Window.alert("Form submitted successfully!");
    }
});

RootPanel.get().add(emailField);
RootPanel.get().add(submitButton);
RootPanel.get().add(errorLabel);

সার্ভার-সাইড এরর হ্যান্ডলিং

GWT-তে RPC কলের সময় সার্ভার থেকে আসা ত্রুটিগুলি সঠিকভাবে পরিচালনা করা যায়।

উদাহরণ: AsyncCallback ব্যবহার
validationService.isValidEmail(email, new AsyncCallback<Boolean>() {
    @Override
    public void onFailure(Throwable caught) {
        if (caught instanceof IllegalArgumentException) {
            Window.alert("Invalid data provided: " + caught.getMessage());
        } else {
            Window.alert("An unexpected error occurred: " + caught.getMessage());
        }
    }

    @Override
    public void onSuccess(Boolean result) {
        if (result) {
            Window.alert("Email is valid!");
        } else {
            Window.alert("Invalid email address!");
        }
    }
});

ভালো প্র্যাকটিস

  • Error Message Localization: বিভিন্ন ভাষায় ত্রুটির বার্তা প্রদর্শনের জন্য GWT-এর Constants বা Messages ইন্টারফেস ব্যবহার করুন।
  • Reusable Validation Methods: একাধিক ফর্মে ভ্যালিডেশন লজিক পুনরায় ব্যবহার করার জন্য একটি Utility ক্লাস তৈরি করুন।
  • UI Feedback: ব্যবহারকারীদের জন্য ইনলাইন ত্রুটি বার্তা এবং হাইলাইট করা ফর্ম ফিল্ড ব্যবহার করুন।

CSS দিয়ে Error Styling

.error {
    color: red;
    font-weight: bold;
}
errorLabel.setStyleName("error");

GWT-তে ফর্ম ভ্যালিডেশন এবং এরর হ্যান্ডলিংয়ের সঠিক বাস্তবায়ন অ্যাপ্লিকেশনের নিরাপত্তা ও ব্যবহারকারীর অভিজ্ঞতাকে উল্লেখযোগ্যভাবে উন্নত করতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...